home *** CD-ROM | disk | FTP | other *** search
- #ifndef _DOS_H_
- #define _DOS_H_
-
- #include <pc.h>
-
- union REGS {
- struct {
- unsigned long ax;
- unsigned long bx;
- unsigned long cx;
- unsigned long dx;
- unsigned long si;
- unsigned long di;
- unsigned long cflag;
- unsigned long flags;
- } x;
- struct {
- unsigned char al;
- unsigned char ah;
- unsigned short upper_ax;
- unsigned char bl;
- unsigned char bh;
- unsigned short upper_bx;
- unsigned char cl;
- unsigned char ch;
- unsigned short upper_cx;
- unsigned char dl;
- unsigned char dh;
- unsigned short upper_dx;
- } h;
- };
-
- struct SREGS {
- unsigned short cs;
- unsigned short ds;
- unsigned short es;
- unsigned short fs;
- unsigned short gs;
- unsigned short ss;
- };
-
- struct ftime {
- unsigned ft_tsec:5; /* 0-29, double to get real seconds */
- unsigned ft_min:6; /* 0-59 */
- unsigned ft_hour:5; /* 0-23 */
- unsigned ft_day:5; /* 1-31 */
- unsigned ft_month:4; /* 1-12 */
- unsigned ft_year:7; /* since 1980 */
- };
-
- struct date {
- short da_year;
- char da_day;
- char da_mon;
- };
-
- struct time {
- unsigned char ti_min;
- unsigned char ti_hour;
- unsigned char ti_hund;
- unsigned char ti_sec;
- };
-
- struct dfree {
- unsigned df_avail;
- unsigned df_total;
- unsigned df_bsec;
- unsigned df_sclus;
- };
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- int bdos(int func, unsigned dx, unsigned al);
- int bdosptr(int func, void *dx, unsigned al);
- int int86(int ivec, union REGS *in, union REGS *out);
- int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *seg);
- int intdos(union REGS *in, union REGS *out);
- int intdosx(union REGS *in, union REGS *out, struct SREGS *seg);
-
- int enable(void);
- int disable(void);
-
- int getftime(int handle, struct ftime *ftimep);
- int setftime(int handle, struct ftime *ftimep);
-
- int getcbrk(void);
- int setcbrk(int new_value);
-
- void getdate(struct date *);
- void gettime(struct time *);
- void setdate(struct date *);
- void settime(struct time *);
-
- void getdfree(unsigned char drive, struct dfree *ptr);
-
- void delay(unsigned msec);
- int _get_default_drive(void);
- void _fixpath(const char *, char *);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-